MAPEADO DIRECTO
Consiste en que cada bloque de Memoria Principal ocupa siempre el mismo marco de la cache. Este marco viene dado por la expresión:
MB= B mod M
donde :
MB es el nº de marco de la cache
B el número de bloque de memoria principal
M el numero de marcos de la memoria cache (tamaño de la cache)
Implementación
La dirección física que proporciona el procesador se interpreta de la siguiente manera:
Donde
el campo palabra (offset) selecciona una palabra de las varias
que tiene el bloque, el campo MB (índex) indica el marco de la
cache que ocupa el bloque y el campo etiqueta (TAG) se utiliza para
la identificación del bloque. El número de marcos de la
cache es
,
el número de bloques de la memoria principal
y
el número de palabras por bloque es
.
Modo de identificación del bloque
Para poder identificar el bloque que ocupa un marco, se asocia a los marcos de cache unos bits de memoria llamados etiqueta del marco, en los que se almacenará el campo etiqueta de la dirección cada vez que se guarde un bloque en un marco. Para ver cual es el bloque almacenado en un marco, se compara la etiqueta de la dirección con la etiqueta del marco.
Modo de operación
Se accede de manera aleatoria al marco de bloque de la cache con los MB bits de la dirección física
Se comprueba que el marco contiene el bloque deseado comparando el campo ETIQUETA (o TAG) de la dirección física con la ETIQUETA (o TAG) de la cache mediante un mecanismo similar al de una memoria asociativa.
Si coinciden las etiquetas se ha producido un acierto de cache y se realiza el acceso al dato, utilizando el desplazamiento w que fija la palabra del marco.
Si no coinciden, esto indica que el bloque buscado no se encuentra en el marco consultado y se produce un fallo de cache, es decir un acceso a la memoria principal para traer a la cache el bloque solicitado.
A los marcos se les asocia un bit de validez que sirve para indicar si la información contenida en el bloque es válida o no. Por ejemplo, cuando un procesador arranca, la cache estará vacía y por lo tanto los campos de etiqueta no tendrán sentido. El esquema del HW que implementa esta política se puede ver a continuación.
EJEMPLO
Ventajas (En comparación con las otras políticas de emplazamiento)
Baja complejidad hardware. Necesita un decodificador y un comparador muy sencillo, esto tiene como consecuencia que el hardware sea más barato.
Alta velocidad de operación (el tiempo de cache es bajo)
No necesita algoritmos de reemplazamiento
Desventajas
Si un programa hace referencias repetidas a dos objetos que se encuentran en dos bloques diferentes a los que les corresponde el mismo marco, estos bloques tendrán que estar permanentemente saliendo de la memoria cache, por lo tanto la tasa de fallos será elevada.